<?php

namespace App\Services\Chanjet;

//畅捷通工具类
class AESUtils {
    public static $cipher = 'AES-128-ECB';
    public function des()
    {

    }
    /**
     *   畅捷通T+返回结果,字符串解密
     *
     *
     * */
    public static function aesDecrypt($str, $key) {
        // 将Base64编码的字符串解码为二进制数据
        $bytes = base64_decode($str);
        //var_dump(json_decode($str,));die;
        // 设置解密选项
        $options = OPENSSL_RAW_DATA; // 告诉openssl_decrypt返回原始二进制数据，而不是base64编码后的数据

        // 执行解密操作
        // 注意：PHP的openssl_decrypt默认使用CBC模式，如果没有指定IV（初始化向量），则使用全零IV
        // 由于Java代码使用的是ECB模式，我们需要显式指定为ECB，并且不需要IV
//        $decrypted = openssl_decrypt($bytes, 'aes-128-ecb', $key, $options, '');
        $decrypted = openssl_decrypt($bytes, self::$cipher, $key, $options, '');

        // 如果解密成功，返回解密后的字符串；否则返回false
        if ($decrypted === false) {
            throw new Exception('Decryption failed');
        }

        // 返回解密后的字符串（假设它是UTF-8编码的）
        return $decrypted;
    }

}



?>
